#!/bin/bash

# 清理苹果系统产生的垃圾文件脚本
# 作者: AI Assistant
# 日期: $(date)

echo "开始清理苹果系统垃圾文件..."

# 统计清理前的文件数量
echo "清理前统计:"
BEFORE_COUNT=$(find . -name "._*" -o -name ".DS_Store" -o -name "Thumbs.db" -o -name ".AppleDouble" -o -name ".LSOverride" | wc -l)
echo "发现 $BEFORE_COUNT 个垃圾文件"

# 清理 ._* 文件（苹果资源分叉文件）
echo "正在清理 ._* 文件..."
find . -name "._*" -type f -delete

# 清理 .DS_Store 文件（Finder缓存文件）
echo "正在清理 .DS_Store 文件..."
find . -name ".DS_Store" -type f -delete

# 清理 Thumbs.db 文件（Windows缩略图缓存，但有时也会出现在Mac上）
echo "正在清理 Thumbs.db 文件..."
find . -name "Thumbs.db" -type f -delete

# 清理 .AppleDouble 目录
echo "正在清理 .AppleDouble 目录..."
find . -name ".AppleDouble" -type d -exec rm -rf {} + 2>/dev/null

# 清理 .LSOverride 文件
echo "正在清理 .LSOverride 文件..."
find . -name ".LSOverride" -type f -delete

# 清理 __MACOSX 目录（解压缩时产生的）
echo "正在清理 __MACOSX 目录..."
find . -name "__MACOSX" -type d -exec rm -rf {} + 2>/dev/null

# 清理 .fseventsd 目录（文件系统事件存储）
echo "正在清理 .fseventsd 目录..."
find . -name ".fseventsd" -type d -exec rm -rf {} + 2>/dev/null

# 清理 .Spotlight-V100 目录（Spotlight索引）
echo "正在清理 .Spotlight-V100 目录..."
find . -name ".Spotlight-V100" -type d -exec rm -rf {} + 2>/dev/null

# 清理 .Trashes 目录（垃圾箱）
echo "正在清理 .Trashes 目录..."
find . -name ".Trashes" -type d -exec rm -rf {} + 2>/dev/null

# 清理 .TemporaryItems 目录（临时项目）
echo "正在清理 .TemporaryItems 目录..."
find . -name ".TemporaryItems" -type d -exec rm -rf {} + 2>/dev/null

# 清理 .VolumeIcon.icns 文件（卷图标）
echo "正在清理 .VolumeIcon.icns 文件..."
find . -name ".VolumeIcon.icns" -type f -delete

# 统计清理后的文件数量
echo "清理后统计:"
AFTER_COUNT=$(find . -name "._*" -o -name ".DS_Store" -o -name "Thumbs.db" -o -name ".AppleDouble" -o -name ".LSOverride" | wc -l)
echo "剩余 $AFTER_COUNT 个垃圾文件"

CLEANED_COUNT=$((BEFORE_COUNT - AFTER_COUNT))
echo "成功清理了 $CLEANED_COUNT 个垃圾文件"

echo "清理完成！"

# 可选：设置 .gitignore 来防止这些文件被提交到版本控制
if [ -f ".gitignore" ]; then
    echo "检查 .gitignore 文件..."
    if ! grep -q "\.DS_Store" .gitignore; then
        echo "添加苹果系统文件到 .gitignore..."
        cat >> .gitignore << EOF

# 苹果系统文件
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
__MACOSX/
.AppleDouble
.LSOverride
.fseventsd/
.TemporaryItems/
.VolumeIcon.icns
EOF
        echo ".gitignore 已更新"
    else
        echo ".gitignore 已包含相关规则"
    fi
else
    echo "创建 .gitignore 文件..."
    cat > .gitignore << EOF
# 苹果系统文件
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
__MACOSX/
.AppleDouble
.LSOverride
.fseventsd/
.TemporaryItems/
.VolumeIcon.icns
EOF
    echo ".gitignore 已创建"
fi
